package com.cyms.modules.order.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.cyms.modules.base.entity.LineEntity;
import com.cyms.modules.base.entity.LineTypeEntity;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 订单
 * 
 * @author low
 * @email tolower@foxmail.com
 * @date 2018-12-13 22:59:47
 */
@TableName("cy_order")
public class OrderEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 
	 */
	@TableId
	private Long id;
	/**
	 * 预定单号
	 */
	private String orderNo;
	/**
	 * 客户团号
	 */
	private String customerNo;
	/**
	 * 客户id
	 */
	private Long customerId;
	/**
	 * 客户名称
	 */
	private String customerName;
	
	private Long companyId;
	/**
	 * 路线分类id
	 */
	private Long lineTypeId;
	/**
	 * 路线id
	 */
	private Long lineId;
	
	@TableField(exist = false)
	private LineEntity line;
	
	@TableField(exist = false)
	private LineTypeEntity lineType;
	/**
	 * 团队日期
	 */
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
	private Date teamDate;
	/**
	 * 用车时间
	 */
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
	private Date startDate;
	/**
	 * 下团时间
	 */
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
	private Date endDate;
	/**
	 * 人数（大人）
	 */
	private Integer userNumOld;
	/**
	 * 人数（小孩）
	 */
	private Integer userNumYoung;
	/**
	 * 客源地
	 */
	private String customerFrom;
	/**
	 * 联系人
	 */
	private String linkUser;
	/**
	 * 手机号
	 */
	private String linkMobile;
	/**
	 * 电话号码
	 */
	private String linkPhone;
	/**
	 * 传真
	 */
	private String linkFax;
	/**
	 * 导游姓名
	 */
	private String tourGuide;
	/**
	 * 导游手机
	 */
	private String tourGuideMobile;
	/**
	 * 座位数量
	 */
	private Integer seatNum;
	/**
	 * 用车数量
	 */
	private Integer carNum;
	/**
	 * 车型
	 */
	private String carType;
	/**
	 * 用车备注
	 */
	private String carRemark;
	/**
	 * 机场接送
	 */
	private String airportSrv;
	/**
	 * 街头扫尾
	 */
	private String otherSrv;
	/**
	 * 总费用
	 */
	private BigDecimal totalAmount;
	/**
	 * 已付款金额
	 */
	private BigDecimal alreadyAmount;
	/**
	 * 待付款金额
	 */
	private BigDecimal restAmount;
	/**
	 * 收款时间
	 */
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
	private Date payDate;
	/**
	 * 收款方式
	 */
	private String payType;
	/**
	 * 发票
	 */
	private String invoice;
	/**
	 * 发票金额
	 */
	private BigDecimal invoiceAmount;
	/**
	 * 摘要
	 */
	private String payRemark;
	/**
	 * 备注说明
	 */
	private String remark;
	/**
	 * 创建时间
	 */
	private Date createDate;
	/**
	 * 创建人
	 */
	private Long createUser;
	/**
	 * 创建部门
	 */
	private Long createDept;
	/**
	 * 创建机构
	 */
	private Long createOrg;
	/**
	 * 状态（1：有效，0：无效）
	 */
	private String status;
	/**
	 * 销账人
	 */
	private String finishUser;
	/**
	 * 销账时间
	 */
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
	private Date finishDate;
	/**
	 * 销账方式
	 */
	private String finishAmountType;

	@TableField(exist = false)
	private List<OrderScheduleEntity> scheduleList;
	
	@TableField(exist = false)
	private List<OrderAmountEntity> amountList;
	
	@TableField(exist = false)
	private List<OrderCarEntity> carList;

	public OrderEntity() {
	}

	/**
	 * 设置：
	 */
	public void setId(Long id) {
		this.id = id;
	}
	/**
	 * 获取：
	 */
	public Long getId() {
		return id;
	}
	/**
	 * 设置：预定单号
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}
	/**
	 * 获取：预定单号
	 */
	public String getOrderNo() {
		return orderNo;
	}
	/**
	 * 设置：客户团号
	 */
	public void setCustomerNo(String customerNo) {
		this.customerNo = customerNo;
	}
	/**
	 * 获取：客户团号
	 */
	public String getCustomerNo() {
		return customerNo;
	}
	/**
	 * 设置：客户id
	 */
	public void setCustomerId(Long customerId) {
		this.customerId = customerId;
	}
	/**
	 * 获取：客户id
	 */
	public Long getCustomerId() {
		return customerId;
	}
	/**
	 * 设置：客户名称
	 */
	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}
	/**
	 * 获取：客户名称
	 */
	public String getCustomerName() {
		return customerName;
	}
	/**
	 * 设置：路线分类id
	 */
	public void setLineTypeId(Long lineTypeId) {
		this.lineTypeId = lineTypeId;
	}
	/**
	 * 获取：路线分类id
	 */
	public Long getLineTypeId() {
		return lineTypeId;
	}
	/**
	 * 设置：路线id
	 */
	public void setLineId(Long lineId) {
		this.lineId = lineId;
	}
	/**
	 * 获取：路线id
	 */
	public Long getLineId() {
		return lineId;
	}
	/**
	 * 设置：团队日期
	 */
	public void setTeamDate(Date teamDate) {
		this.teamDate = teamDate;
	}
	/**
	 * 获取：团队日期
	 */
	public Date getTeamDate() {
		return teamDate;
	}
	/**
	 * 设置：用车时间
	 */
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}
	/**
	 * 获取：用车时间
	 */
	public Date getStartDate() {
		return startDate;
	}
	/**
	 * 设置：下团时间
	 */
	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}
	/**
	 * 获取：下团时间
	 */
	public Date getEndDate() {
		return endDate;
	}
	/**
	 * 设置：人数（大人）
	 */
	public void setUserNumOld(Integer userNumOld) {
		this.userNumOld = userNumOld;
	}
	/**
	 * 获取：人数（大人）
	 */
	public Integer getUserNumOld() {
		return userNumOld;
	}
	/**
	 * 设置：人数（小孩）
	 */
	public void setUserNumYoung(Integer userNumYoung) {
		this.userNumYoung = userNumYoung;
	}
	/**
	 * 获取：人数（小孩）
	 */
	public Integer getUserNumYoung() {
		return userNumYoung;
	}
	/**
	 * 设置：客源地
	 */
	public void setCustomerFrom(String customerFrom) {
		this.customerFrom = customerFrom;
	}
	/**
	 * 获取：客源地
	 */
	public String getCustomerFrom() {
		return customerFrom;
	}
	/**
	 * 设置：联系人
	 */
	public void setLinkUser(String linkUser) {
		this.linkUser = linkUser;
	}
	/**
	 * 获取：联系人
	 */
	public String getLinkUser() {
		return linkUser;
	}
	/**
	 * 设置：手机号
	 */
	public void setLinkMobile(String linkMobile) {
		this.linkMobile = linkMobile;
	}
	/**
	 * 获取：手机号
	 */
	public String getLinkMobile() {
		return linkMobile;
	}
	/**
	 * 设置：电话号码
	 */
	public void setLinkPhone(String linkPhone) {
		this.linkPhone = linkPhone;
	}
	/**
	 * 获取：电话号码
	 */
	public String getLinkPhone() {
		return linkPhone;
	}
	/**
	 * 设置：传真
	 */
	public void setLinkFax(String linkFax) {
		this.linkFax = linkFax;
	}
	/**
	 * 获取：传真
	 */
	public String getLinkFax() {
		return linkFax;
	}
	/**
	 * 设置：导游姓名
	 */
	public void setTourGuide(String tourGuide) {
		this.tourGuide = tourGuide;
	}
	/**
	 * 获取：导游姓名
	 */
	public String getTourGuide() {
		return tourGuide;
	}
	/**
	 * 设置：导游手机
	 */
	public void setTourGuideMobile(String tourGuideMobile) {
		this.tourGuideMobile = tourGuideMobile;
	}
	/**
	 * 获取：导游手机
	 */
	public String getTourGuideMobile() {
		return tourGuideMobile;
	}
	/**
	 * 设置：座位数量
	 */
	public void setSeatNum(Integer seatNum) {
		this.seatNum = seatNum;
	}
	/**
	 * 获取：座位数量
	 */
	public Integer getSeatNum() {
		return seatNum;
	}
	/**
	 * 设置：用车数量
	 */
	public void setCarNum(Integer carNum) {
		this.carNum = carNum;
	}
	/**
	 * 获取：用车数量
	 */
	public Integer getCarNum() {
		return carNum;
	}
	/**
	 * 设置：车型
	 */
	public void setCarType(String carType) {
		this.carType = carType;
	}
	/**
	 * 获取：车型
	 */
	public String getCarType() {
		return carType;
	}
	/**
	 * 设置：用车备注
	 */
	public void setCarRemark(String carRemark) {
		this.carRemark = carRemark;
	}
	/**
	 * 获取：用车备注
	 */
	public String getCarRemark() {
		return carRemark;
	}
	/**
	 * 设置：机场接送
	 */
	public void setAirportSrv(String airportSrv) {
		this.airportSrv = airportSrv;
	}
	/**
	 * 获取：机场接送
	 */
	public String getAirportSrv() {
		return airportSrv;
	}
	/**
	 * 设置：街头扫尾
	 */
	public void setOtherSrv(String otherSrv) {
		this.otherSrv = otherSrv;
	}
	/**
	 * 获取：街头扫尾
	 */
	public String getOtherSrv() {
		return otherSrv;
	}
	/**
	 * 设置：总费用
	 */
	public void setTotalAmount(BigDecimal totalAmount) {
		this.totalAmount = totalAmount;
	}
	/**
	 * 获取：总费用
	 */
	public BigDecimal getTotalAmount() {
		return totalAmount;
	}
	/**
	 * 设置：已付款金额
	 */
	public void setAlreadyAmount(BigDecimal alreadyAmount) {
		this.alreadyAmount = alreadyAmount;
	}
	/**
	 * 获取：已付款金额
	 */
	public BigDecimal getAlreadyAmount() {
		return alreadyAmount;
	}
	/**
	 * 设置：待付款金额
	 */
	public void setRestAmount(BigDecimal restAmount) {
		this.restAmount = restAmount;
	}
	/**
	 * 获取：待付款金额
	 */
	public BigDecimal getRestAmount() {
		return restAmount;
	}
	/**
	 * 设置：收款时间
	 */
	public void setPayDate(Date payDate) {
		this.payDate = payDate;
	}
	/**
	 * 获取：收款时间
	 */
	public Date getPayDate() {
		return payDate;
	}
	/**
	 * 设置：收款方式
	 */
	public void setPayType(String payType) {
		this.payType = payType;
	}
	/**
	 * 获取：收款方式
	 */
	public String getPayType() {
		return payType;
	}
	/**
	 * 设置：发票
	 */
	public void setInvoice(String invoice) {
		this.invoice = invoice;
	}
	/**
	 * 获取：发票
	 */
	public String getInvoice() {
		return invoice;
	}
	/**
	 * 设置：发票金额
	 */
	public void setInvoiceAmount(BigDecimal invoiceAmount) {
		this.invoiceAmount = invoiceAmount;
	}
	/**
	 * 获取：发票金额
	 */
	public BigDecimal getInvoiceAmount() {
		return invoiceAmount;
	}
	/**
	 * 设置：摘要
	 */
	public void setPayRemark(String payRemark) {
		this.payRemark = payRemark;
	}
	/**
	 * 获取：摘要
	 */
	public String getPayRemark() {
		return payRemark;
	}
	/**
	 * 设置：备注说明
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}
	/**
	 * 获取：备注说明
	 */
	public String getRemark() {
		return remark;
	}
	/**
	 * 设置：创建时间
	 */
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	/**
	 * 获取：创建时间
	 */
	public Date getCreateDate() {
		return createDate;
	}
	/**
	 * 设置：状态（1：有效，0：无效）
	 */
	public void setStatus(String status) {
		this.status = status;
	}
	/**
	 * 获取：状态（1：有效，0：无效）
	 */
	public String getStatus() {
		return status;
	}
	public List<OrderScheduleEntity> getScheduleList() {
		return scheduleList;
	}
	public void setScheduleList(List<OrderScheduleEntity> scheduleList) {
		this.scheduleList = scheduleList;
	}
	public List<OrderAmountEntity> getAmountList() {
		return amountList;
	}
	public void setAmountList(List<OrderAmountEntity> amountList) {
		this.amountList = amountList;
	}
	public LineEntity getLine() {
		return line;
	}
	public void setLine(LineEntity line) {
		this.line = line;
	}
	public List<OrderCarEntity> getCarList() {
		return carList;
	}
	public void setCarList(List<OrderCarEntity> carList) {
		this.carList = carList;
	}
	public LineTypeEntity getLineType() {
		return lineType;
	}
	public void setLineType(LineTypeEntity lineType) {
		this.lineType = lineType;
	}
	public Long getCompanyId() {
		return companyId;
	}
	public void setCompanyId(Long companyId) {
		this.companyId = companyId;
	}

	public String getFinishUser() {
		return finishUser;
	}

	public void setFinishUser(String finishUser) {
		this.finishUser = finishUser;
	}

	public Date getFinishDate() {
		return finishDate;
	}

	public void setFinishDate(Date finishDate) {
		this.finishDate = finishDate;
	}

	public String getFinishAmountType() {
		return finishAmountType;
	}

	public void setFinishAmountType(String finishAmountType) {
		this.finishAmountType = finishAmountType;
	}
	public Long getCreateUser() {
		return createUser;
	}

	public void setCreateUser(Long createUser) {
		this.createUser = createUser;
	}

	public Long getCreateDept() {
		return createDept;
	}

	public void setCreateDept(Long createDept) {
		this.createDept = createDept;
	}

	public Long getCreateOrg() {
		return createOrg;
	}

	public void setCreateOrg(Long createOrg) {
		this.createOrg = createOrg;
	}
}
